1. Field of Invention
The present invention relates generally to a fabric interconnect system and method for providing a data path between and among nodes and processing elements within an interconnection fabric.
2. Brief Description of the Prior Art
The components inside a computer communicate with each other in various ways. In general, most of the internal system components, including the processor, cache, memory, expansion cards and storage devices, exchange information over one or more “buses”.
A bus refers to the physical medium, usually, a wire or a plurality of wires through which data is transmitted from one part of a computer to another. When used in reference to personal computers, the term bus usually refers to internal bus, which connects all the internal computer components to the CPU and main memory.
A computer generally has more than one type of bus. Each bus connects different devices together in order to completely integrate the various parts of the computer. The communication on a bus can be controlled and regulated by a system chipset, which insures that every device in the system is talking properly to every other one by imposing rules that strictly manage the movement of data along the bus. Devices must adhere to a common protocol that specifies the rules for communication between devices. Each device that interfaces to the bus implements a common set of functions. In addition, the system chipset provides functions that are needed for the bus to operate (such as clocks and interrupt controllers). Other devices use, but do not provide, these functions.
A bus is composed of three distinct parts: the data bus the address bus, and the control bus. In some cases the data and address bus can be multiplexed onto the same physical wire. The data bus carries the data being transferred. The address bus carries information about where in memory the data is to be transferred. In the case where one physical wire is used for the data and address bus, a signal pin is used to indicate if data or address information is currently on the bus. The control bus carries meta-data relating to the state of the bus and side-band signals that allow for the orderly management of the system.
In addition, there are a number of devices that control the flow of information on a bus. These devices include switches and bridges. A switch or a bridge is a device that implements rules, known as protocols to regulate the transfer of information across a bus. A protocol is an agreed-upon format for transmitting data between two devices. The protocol can set forth rules for various elements of the information transfer, such as, the type of error checking to be used, the data compression method, if any, how the sending device will indicate that it has finished sending a message, how the receiving device will indicate that it has received a message. A protocol can be implemented either in software or in hardware, such as in a switch or bridge.
Current industry standard communication interconnects (bus standards) are generally of two types: proprietary and generic. Propriety systems are expensive, incompatible with other technology, and tend to populate the high end of the marketplace. Generic systems, based upon industry standards, such as PCI, CompactPCI and H.100/H.110 are constrained in scale and bandwidth, and are usually tuned for one class of traffic. Electrical signaling characteristics, mechanical connections, and spatial locality are additional constraints, as are latency and reliability. The advantage of generic systems is their ability to provide acceptable performance in medium and low-end systems at a very low cost.
Compatibility between devices in generic systems having different protocols can be achieved using devices such as application specific integrated circuits (ASICs), which can incorporate their dedicated data transmission protocols for linking communications between two different industry standard systems. Two types of ASIC devices that are used to achieve compatibility are edge nodes, sometimes referred to as bridges and multi-port switches, sometimes referred to as just switches.
A data bus that connects a plurality of devices is sometimes referred to as an interconnect. An interconnect where devices are connected with many redundant connections or paths between network nodes to make up the communications system within a computer can be generally referred to as a fabric. The geometric arrangement of an interconnect is known as its topology. A protocol will define the set of rules and signals that regulate the flow of data within a fabric in accordance with its topology.
One particular type of protocol that controls data routing across a bus is known as PCI. PCI routing is based on the notions of initiators and targets. The initiator or origin of a transaction is the edge node that generates the initial bus transaction, the terminus of a transaction is the edge node that ultimately receives the transaction. Outside the context of a PCI bus, one way to move data through a network or fabric is known as routing and is the principle function of the devices and protocols that make up a fabric. The routing of data generally takes place by first assembling the data to be transmitted into groups of data corresponding to a particular set of rules. These groups are referred to as packets or frames. The packets or frames are then transmitted from the origin to the terminus using one of the various routing methods. Those methods include, Address Routed Frames or Path Routed Frames. Address routing is, just as its name implies the method of sending data to a particular node, located at a discrete address. Path Routed Frames move across the fabric from the origin to the terminus by “knowing” the relative location of the terminus within the fabric. Paths are strictly relative, comprising something similar to a multi-street intersection for which routing direction may be of the form “skip over three streets in the clockwise direction”, which gives rise to a valuable property of Path Routing, that being that it is bi-directional.
However, the routing devices and protocols that exist do not provide the advantages of spoof-proof bi-directionality. Routing is spoof-proof if data arriving at a fabric location can only have come from the location indicated by the data. Routing is bi-directional if the path indicated by arriving data can be transformed into the return path of the source of the data. In addition, there exists a need for a system and method of data transmission in a computer that can provide a high degree of reliability through the use of redundant interconnects, easy device insertion and removal, provide the capability for longer distances between point connections while keeping latency bounded.
Therefore it is an object of the present invention to provide a system and method whereby data packets can be routed over an interconnect fabric using generic protocol and devices, adaptable to transport generic frame data as well as high-level protocols such as IP, ATM and Ethernet.